﻿using System;
using System.Collections.Generic;
using System.Text;

namespace AlumnoEjemplos.TP3D.Collider
{
    public enum CollidesWith {
        Anything, 
        AllButMyGroup,
        SpecificGroups
    }

    [AttributeUsage(AttributeTargets.Class, Inherited = true, AllowMultiple =false)]
    sealed class CollisionGroup : Attribute, CollisionAnnotation
    {
        readonly int groupID;
        readonly CollidesWith _collidesWith;

        List<int> _collidesGroups = null;
        
        public CollisionGroup( int groupID, CollidesWith collidesWith, Int16 [] Grup )
        {
            this.groupID = groupID;
            this._collidesWith = collidesWith;
        }

        public CollidesWith CollidesWith {
            get { return this._collidesWith;  }
        }

        public int GroupID
        {
            get { return this.groupID; }
        }

        public List<int> CollidesGroups {
            set { this._collidesGroups = value;  }
            get { return this._collidesGroups; }
        }

        public void doYourGrace(CollisionEngine engine) {
            
        }

        #region CollisionAnnotation Members

        public void doYourGrace(CollisionConfigurator configurator)
        {
            throw new Exception("The method or operation is not implemented.");
        }

        #endregion
    }
}
